<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Promise封装</title>
    <script src="./promise-class.js"></script>
</head>
<body>
    <script>
        // let P = new Promise((resolve, reject) => {
        //     setTimeout(() => {
        //         // reject("error");
        //         resolve("ok");;
        //     }, 1000);
        // });
        // let res = P.then(value => {
        //     console.log(value);
        // }, reason => {
        //     console.log(reason);
        // }).then(value => {
        //     throw "wrong";
        // }, reason => {

        // }).catch(reason => {
        //     console.warn(reason);
        // })
        // console.log(res);

        // /*resolve方法*/
        // let P3 = Promise.reject("ok1");
        // // console.log(P);
        // let P2 = Promise.resolve(Promise.resolve("ok2"));
        // // console.log(P2);
        // let P1 = Promise.resolve(new Promise((resolve, reject) => {
        //     setTimeout(() => {
        //         resolve("good");
        //     }, 1000);
        // }));
        // // console.log(P3);

        // /*reject方法*/
        // // let P = Promise.reject("error");
        // // console.log(P);

        // // let P3 = Promise.reject(new Promise((resolve, reject)=>{
        // //     resolve("good")
        // // })).catch(reason => {
        // //     console.log(reason);
        // // });
        // // console.log(P3);

        // // /*all方法*/
        // // let result = Promise.all([P, P2, P3]);
        // // console.log(result);

        // /*race方法*/
        // let result = Promise.race([P1, P2, P3]);
        // console.log(result);

        //then方法的回调函数是异步的，所以需要定时器进行封装
        let P = new Promise((resolve, reject) => {
            reject("error");
            console.log("111")
        });
        P.then(value => {
            console.log("222");
        }, reason => {
            console.log("555");
        });
        console.log("333");
    </script>
</body>
</html>